package br.ufrgs.tsp.model;

import java.util.List;

/**
 * City interface for a TSP problem.
 * @author mineiro
 *
 */
public interface ICity extends IModel {
	
	/**
	 * Verifies if this city has neigboards cities.
	 * @return true if it has at least one neigboard, false otherwise.
	 */
	public boolean hasNeigboards();
	
	/**
	 * Gets the neigboards count for this city.
	 * @return number of neigboards.
	 */
	public int getNeigboardsCount();
	
	/**
	 * Retrieave the list of neigboards for a city.
	 * @return List of neigboards
	 */
	public List<ICity> getNeigboards();
	
	public ICity getNeigboardAt(int index);

	/**
	 * Gets the unique city identifier.
	 * @return city identifier
	 */
	public int getCityId();
	
	public void addNeigboard(ICity... city);
	
	public String toString();
	
	public boolean hasNeigboard(ICity city);
}
